{\rtf1\mac\ansicpg10000\cocoartf102
{\fonttbl\f0\fswiss\fcharset77 Helvetica-Bold;\f1\fnil\fcharset77 Monaco;\f2\fswiss\fcharset77 Helvetica;
}
{\colortbl;\red255\green255\blue255;\red0\green0\blue191;\red0\green115\blue0;\red191\green0\blue0;
\red191\green0\blue0;\red0\green0\blue0;\red0\green0\blue191;}
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\tx7280\tx7840\ql\qnatural

\f0\b\fs36 \cf0 BMoog
\fs30 	24db/oct rolloff - 4nd order resonant Low/High/Band Pass Filter.
\f1\b0\fs18 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural

\f0\b\fs24 \cf0 \
BMoog.ar(in, freq, q, mode, saturation, mul, add)
\f1\b0\fs18 \

\f2\fs24 \
BlackRain's yet 'nother moog impersonation. oh yes.\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural

\f1\fs18 \cf0 \
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural

\f0\b\fs24 \cf0 in
\f2\b0  - input signal to be processed\

\f0\b freq
\f2\b0  - cutoff frequency.\

\f0\b q
\f2\b0  - bandwidth / cutoffFreq.  0 < q > 1\

\f0\b mode
\f2\b0 - filter mode:\
	< 1 - low pass filter.\
	< 2 - high pass filter.\
	< 3 - bandpass filter.\
	defaults to lowpass.\
	\
see also:
\f1\fs18  
\f0\b\fs24 SOS RLPF RHPF BLowPass BLowPass4 BHiPass BHiPass4 BLowShelf BHiShelf BBandPass BBandStop BAllPass IIRFilter
\f1\b0\fs18 \
\
s.boot;\
(\
z = \{\
	\cf2 BMoog\cf0 .ar(\
		\cf2 AudioIn\cf0 .ar([1,2]),\
		\cf2 MouseX\cf0 .kr(20,20000,\cf3 \\exponential\cf0 ), \cf4 // cutoff freq.\cf0 \
		\cf2 MouseY\cf0 .kr(1.0, 0.0, \cf3 \\linear\cf0 ), \cf4 // q\cf0 \
		0, \cf4 // mode - lowpass\
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
\cf0 		0.25); \cf4 // mul\cf0 \
\}.play)\
z.release;\
\
(\
z = \{\
	\cf2 var\cf0  sig, freq;\
	freq = \cf2 MouseX\cf0 .kr(20,12000,\cf3 \\exponential\cf0 );\
	sig = \cf2 BMoog\cf0 .ar(\
		\cf2 LFSaw\cf0 .ar([freq * 0.99, freq * 1.01], 0, 0.1) ! 2,\
		\cf2 SinOsc\cf0 .kr(\cf2 SinOsc\cf0 .kr(0.1),1.5pi,1550,1800),\
		\cf2 MouseY\cf0 .kr(1,0,\cf3 \\linear\cf0 ),\
		0);	\cf4 // filter mode - lowpass\cf0 \
	 (\cf2 CombN\cf0 .ar(sig, 0.4, [0.4,0.35],2) * 0.4) + (sig * 0.5);\
\}.play)\
z.release\
\
(\
z = \{\
	\cf2 var\cf0  sig, freq;\
	freq = \cf2 MouseX\cf0 .kr(20,12000,\cf3 \\exponential\cf0 );\
	sig = \cf2 BMoog\cf0 .ar(\
		\cf2 LFSaw\cf0 .ar([freq * 0.99, freq * 1.01], 0, 0.1) ! 2,\
		\cf2 SinOsc\cf0 .kr(\cf2 SinOsc\cf0 .kr(0.1),1.5pi,1550,1800),\
		\cf2 MouseY\cf0 .kr(1,0,\cf3 \\linear\cf0 ),\
		1);	\cf4 // filter mode - highpass\cf0 \
	 (\cf2 CombN\cf0 .ar(sig, 0.4, [0.4,0.35],2) * 0.4) + (sig * 0.5);\
\}.play)\
z.release\
\
(\
z = \{\
	\cf2 var\cf0  sig, freq;\
	freq = \cf2 MouseX\cf0 .kr(20,12000,\cf3 \\exponential\cf0 );\
	sig = \cf2 BMoog\cf0 .ar(\
		\cf2 LFSaw\cf0 .ar([freq * 0.99, freq * 1.01], 0, 0.1) ! 2,\
		\cf2 SinOsc\cf0 .kr(\cf2 SinOsc\cf0 .kr(0.1),1.5pi,1550,1800),\
		\cf2 MouseY\cf0 .kr(1,0,\cf3 \\linear\cf0 ),\
		2);	\cf4 // filter mode - bandpass\cf0 \
	 (\cf2 CombN\cf0 .ar(sig, 0.4, [0.4,0.35],2) * 0.4) + (sig * 0.5);\
\}.play)\
z.release\
\
(\
z = \{\
	\cf2 var\cf0  sig, freq;\
	freq = \cf2 MouseX\cf0 .kr(20,12000,\cf3 \\exponential\cf0 );\
	sig = \cf2 BMoog\cf0 .ar(\
		\cf2 LFSaw\cf0 .ar([freq * 0.99, freq * 1.01], 0, 0.1) ! 2,\
		\cf2 SinOsc\cf0 .kr(\cf2 SinOsc\cf0 .kr(0.1),1.5pi,1550,1800),\
		\cf2 MouseY\cf0 .kr(1,0,\cf3 \\linear\cf0 ),\
		\cf2 LFSaw\cf0 .kr(1,0,3));	\cf4 // filter mode - sweep modes\cf0 \
	 (\cf2 CombN\cf0 .ar(sig, 0.4, [0.4,0.35],2) * 0.4) + (sig * 0.5);\
\}.play)\
z.release\
\
\cf5 // bhob's benchmark ;)\cf6 \
(\
z = \{\
	\cf7 var\cf6  sig;\
	sig = \cf7 BMoog\cf6 .ar(\
		\cf7 Mix\cf6 .ar(\cf7 LFSaw\cf6 .ar([120, 180], 0, 0.2)),\
		\cf7 LinExp\cf6 .kr(\cf7 LFCub\cf6 .kr(0.1, 0.5pi), -1, 1, 280, 1500),\
		0.75,\
		2.0).dup;\
	 (\cf7 CombN\cf6 .ar(sig, 0.4, [0.4,0.35],2) * 0.4) + (sig * 0.5);\
	\}.play\
)\
z.release\
\cf0 \
}